#1、一般会被重复使用到的操作，建议封装成函数
#2、公共的函数，应该放在一个公共的位置（public文件夹）
#3、根据函数的功能不同，分成不同的模块
    #例如(工具模块tools)：读文件、写文件、随机字符串、正则表达式提取字符串
    #例如(操作模块action)：打开浏览器、切换窗口、截图
        #以上两个模块无论进行哪个项目的自动化测试，都可以使用
    #例如(业务模块business)：DBshop登录、DBshop注册、DBshop修改密码
    #例如(数据模块testData)：网址、账号、密码
        #以上两个模块，只能用于DBshop
#4、封装函数能提高脚本的复用性，降低代码的冗余度
#5、封装函数能降低脚本的维护成本
    #例如：测试环境环境变成了"https://localhost/dbshop/"，只需要修改公共模块的testData.url即可
    #例如：登录按钮发生了改变，只需要修改business.DBshopLogin函数即可
from public.tools import *
from public.action import *
from public.business import *
from public.testData import *
import time
newPassword=randomString(8)    #给新密码赋值为一个包含大小写字母及数字且长度为8的字符串
dr=openBrowser(url)     #dr变量为通过浏览器打开dbshop网站
DBshopLogin(dr,userName,password)     #dbshop账号登录需要用到的变量为：网站，用户名，密码
DBshopChangePassword(dr,password,newPassword)    #dbshop修改密码需要用到的变量为：网站，用户名，新密码
time.sleep(7)     #强制等待7秒
writeFile("C:\\selenium105_tec\\day03\\pwd.txt",newPassword)
#写入文件，路径为C:\\selenium105_tec\\day03\\pwd.txt，写入内容是新密码
dr.close()  #关闭网站
